<?php

use think\migration\Migrator;
use think\migration\db\Column;

/**
 * 工况 - 脱硫表
 */
class CompanyIndustryMonitorSulfurHour extends Migrator
{
    public function up()
    {
        $table = $this->table('company_industry_monitor_sulfur_hour');

        $table
            // step1:时间
            ->addColumn('publish_time', 'datetime', ['comment' => '发布小时时间'])

            //step2:相关ID和名称
            ->addColumn('industry_id', 'integer', ['limit' => 11, 'comment' => '电力供热等ID'])  //同脱硝
            ->addColumn('industry_name', 'string', ['limit' => 20, 'comment' => '电力供热等名称']) //同脱硝
            ->addColumn('company_id', 'integer', ['limit' => 11, 'comment' => '公司ID']) //同脱硝
            ->addColumn('company_name', 'string', ['limit' => 50, 'comment' => '公司名称']) //同脱硝
            ->addColumn('drain_id', 'integer', ['limit' => 11, 'comment' => '排口ID']) //同脱硝
            ->addColumn('drain_name', 'string', ['limit' => 50, 'comment' => '排口名称']) //同脱硝
            ->addColumn('facility_id', 'integer', ['limit' => 11, 'comment' => '工艺设施ID']) //同脱硝
            ->addColumn('facility_name', 'string', ['limit' => 50, 'comment' => '工艺设施编号']) //同脱硝

            //step3:“模型计算”出来的运行参数
            // 对于脱硫来说：通过“脱硫正向反应模型”得到“SO2OutDen”，就是“硫”的“运行浓度”
            //相关参数参考接口文档 https://www.kancloud.cn/hongweizhiyuan/huanxin_api_doc/977389
            ->addColumn('operation_concentration', 'float', ['comment' => '运行浓度'])

            // 脱硫效率，公式： 1- (硫的出口浓度*硫的出口烟气量)/(硫的入口浓度*硫的入口烟气量)
            ->addColumn('operating_efficiency', 'float', ['comment' => '运行效率'])

            // 对于脱硫来说：通过“脱硫正向反应模型”得到“CaSRatio”，就是“硫”的“钙硫比”
            //相关参数参考接口文档 https://www.kancloud.cn/hongweizhiyuan/huanxin_api_doc/977389
            ->addColumn('calcium_sulfur_ratio', 'float', ['comment' => '钙硫比'])

            // 对于脱硫来说：通过“脱硫正向反应模型”得到“liquidGasRatio”，就是“硫”的“液气比”
            //相关参数参考接口文档 https://www.kancloud.cn/hongweizhiyuan/huanxin_api_doc/977389
            ->addColumn('liquid_gas_ratio', 'string', ['comment' => '液气比'])

            //step4:“工况数据”中出来的前端使用字段
            // 供浆量，对应表中的“source_company_jin_neng_re_dian2”中的46,114
            ->addColumn('pulp_supply', 'float', ['comment' => '供浆量'])

            // PH值，对应表中的“source_company_jin_neng_re_dian2”中的48,118
            ->addColumn('ph', 'float', ['comment' => 'PH值'])

            // 循环泵,对应表中的“source_company_jin_neng_re_dian2”中的58,126，显示开关，原始数据存的是0和1，1开0关
            ->addColumn('circulating_pump1_witching_state', 'integer', ['limit' => 2, 'comment' => 'X 机组1#循环泵开关状态'])

            // 循环泵,对应表中的“source_company_jin_neng_re_dian2”中的59,127，显示开关，原始数据存的是0和1，1开0关
            ->addColumn('circulating_pump2_witching_state', 'integer', ['limit' => 2, 'comment' => 'X 机组2#循环泵开关状态'])

            // 循环泵,对应表中的“source_company_jin_neng_re_dian2”中的60,128，显示开关，原始数据存的是0和1，1开0关
            ->addColumn('circulating_pump3_witching_state', 'integer', ['limit' => 2, 'comment' => 'X 机组3#循环泵开关状态'])

            // 循环泵,对应表中的“source_company_jin_neng_re_dian2”中的61,129，显示开关，原始数据存的是0和1，1开0关
            ->addColumn('circulating_pump4_witching_state', 'integer', ['limit' => 2, 'comment' => 'X 机组4#循环泵开关状态'])

            //step5:“全要素”中使用的字段
            // 出口烟气粉尘度,对应表中的“source_company_jin_neng_re_dian2”中的57,125
            ->addColumn('export_smoke_dust', 'float', ['comment' => ' 出口烟气粉尘度'])

            //step6:取出来前端不用，但需要计算用
            // 出口烟气粉尘度,对应表中的“source_company_jin_neng_re_dian2”中的49，117
            ->addColumn('inlet_gas_volume', 'float', ['comment' => '硫小时出口烟气量（协议）'])

            //step7:硫的排放量（其他地方需要用）
            //计算方法：硫的排放量=硫小时运行浓度（模型计算出来的 operation_concentration） * 硫小时出口烟气量（inlet_gas_volume）
            ->addColumn('emissions', 'float', ['comment' => '硫的排放量=硫小时运行浓度（模型计算出来的） * 硫小时出口烟气量（协议）'])

            //step8:时间
            ->addColumn('create_time', 'string', ['limit' => 50, 'comment' => '插入时间'])

            //注释
            ->setComment('工况 - 工业企业监测 - 脱硫（小时）')

            //引擎
            ->setEngine('InnoDB')
            ->save();
    }

    public function down()
    {
        $this->table('company_industry_monitor_sulfur_hour')->drop();
    }
}
